1
จากการจัดกลุ่มชื่อไปสู่ระบบโมดูลที่มั่นคง
AI020Lesson 6
00:00

ในช่วงเริ่มต้นของการพัฒนาภาษาจาวาสคริปต์ การปนเปื้อนชื่อพื้นที่ (Namespace Pollution) เป็นอุปสรรคสำคัญ เมื่อโค้ดที่ไม่เกี่ยวข้องกันใช้ชื่อตัวแปรระดับโลกเพียงชุดเดียว อาจเกิดการชนกันที่คาดการณ์ไม่ได้ การออกแบบในยุคปัจจุบันเปลี่ยนจากท่าทีไร้โครงสร้างไปสู่ ระบบที่จัดกลุ่มโมดูลแยกต่างหาก.

1. การแยกตัวอย่างฟังก์ชัน (IIFE)

โดยห่อโค้ดไว้ใน การแสดงออกของฟังก์ชันที่เรียกใช้ทันที (IIFE) เราจะสร้างบริเวณที่ซ่อนเร้นขึ้นมา ตัวแปรเช่น names จะถูกจำกัดอยู่ภายในฟังก์ชัน และไม่สามารถเข้าถึงได้จากสภาพแวดล้อมระดับโลก

(function() {
var internal = "secret";
console.log(internal);
})();

2. หน้าต่างผ่านวัตถุ (Object-Based Interfaces)

เพื่อให้บริการแก่โลกภายนอก โมดูลจะส่งคืนวัตถุที่ทำหน้าที่เป็น หน้าต่างสาธารณะ. ซึ่งรวมเมธอดที่เกี่ยวข้อง (เช่น name และ number) เข้าไว้ภายใต้ตัวแปรระดับโลกเพียงตัวเดียวที่ถูกนำกลับมาใช้ใหม่

บริเวณซ่อนเร้น[อาร์เรย์ชื่อ]หน้าต่างname(), number()

3. รูปแบบการส่งออก (Exports Pattern)

รูปแบบที่ซับซ้อนขึ้นหนึ่งรูปแบบ คือการส่งวัตถุ exports เข้าไปใน IIFE ซึ่งช่วยให้โมดูลสามารถต่อเนื้อหา API ตรงไปยังเป้าหมายพื้นที่ชื่อเฉพาะได้ โดยเพิ่มความยืดหยุ่นในการใช้งานโมดูล

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>